MDI a thready
Otázka od: tomsir1.edu@mail.cez.cz
15. 9. 2004 6:38
Ahoj,
mam MDI Child a z nej spoustim nekolik threadu a potreboval bych volat
metodu synchronize tak, aby se mi na prislusnem MDI Child okne menil napr.
ProgressBar. Problem je v tom, ze nejsem schopen dostat se k onomu
ProgressBaru. V SDI aplikaci to bylo pomerne jednoduche, kdy jsem pouze
nastavil MainForm.ProgressBar.Progress ... jenze tohoto prave nejsem
schopen dosahnout :O(
Zkousel jsem pristoupit k MDI Child oknu pres MDIChildren[ ] ... ale toto
bohuzel take nejde ... jak na to ?
Diky za napady
Radek
Odpovedá: Bronislav Klucka
15. 9. 2004 6:50
no, pokud mas
TForm1 = class(TForm)
ProgressBar1:TProgressBar1
.
.
.
end;
tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1
Brona
>
> Ahoj,
>
> mam MDI Child a z nej spoustim nekolik threadu a potreboval
> bych volat metodu synchronize tak, aby se mi na prislusnem
> MDI Child okne menil napr.
> ProgressBar. Problem je v tom, ze nejsem schopen dostat se k
> onomu ProgressBaru. V SDI aplikaci to bylo pomerne
> jednoduche, kdy jsem pouze nastavil
> MainForm.ProgressBar.Progress ... jenze tohoto prave nejsem
> schopen dosahnout :O( Zkousel jsem pristoupit k MDI Child
> oknu pres MDIChildren[ ] ... ale toto bohuzel take nejde ...
> jak na to ?
>
> Diky za napady
> Radek
>
>
>
>
>
>
>
Odpovedá: tomsir1.edu@mail.cez.cz
15. 9. 2004 6:58
hm, tomu moc nerozumim ...
jestlize mam :
MDIMainForm -> MDIChildForm -> Ridici Thread => Podrizene Thready ...
jak na to napasuju to cos napsal, tak aby se mi na MDIChildForm zmenil
ProgressBar ... ?
Diky Radek
no, pokud mas
TForm1 = class(TForm)
ProgressBar1:TProgressBar1
.
.
.
end;
tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1
Odpovedá: Bronislav Klucka
15. 9. 2004 7:29
Aha.... ja myslel, ze jen nedokazes ze synchronizacni methody adresovat
okno...
no, jak... udelas to tak, ze do threadu, pri create predas, jako parametr
formular
a pri synchronizaci budes s tim formularem pracovat. Nebo nesychronizuj, ale
posilej
Tebou definovane zpravy.
Brona
>
> hm, tomu moc nerozumim ...
> jestlize mam :
>
> MDIMainForm -> MDIChildForm -> Ridici Thread => Podrizene
> Thready ...
> jak na to napasuju to cos napsal, tak aby se mi na
> MDIChildForm zmenil ProgressBar ... ?
>
> Diky Radek
>
>
>
>
>
> no, pokud mas
> TForm1 = class(TForm)
> ProgressBar1:TProgressBar1
> .
> .
> .
> end;
>
>
> tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1
>
>
>
>
>
>
>
>
>
>
>
>
Odpovedá: tomsir1.edu@mail.cez.cz
15. 9. 2004 7:28
tak uz jsem na to prisel ... diky za nakopnuti ... spravne reseni je toto :
v threadu musim mit :
Uses MainFrm, ChildWin
a metodu TChildWin.UpdateProgress volat takto :
(MainForm.MDIChildren[0] as
TMDIChild).UpdateProgress(MaxValue,CurrentProgress) ;
Diky radek
MDIMainForm -> MDIChildForm -> Ridici Thread => Podrizene Thready ...
jak na to napasuju to cos napsal, tak aby se mi na MDIChildForm zmenil
ProgressBar ... ?
no, pokud mas
TForm1 = class(TForm)
ProgressBar1:TProgressBar1
.
.
.
end;
tak by mohlo fungovat TForm1(MDIChildren[2]).ProgressBar1